﻿Public MustInherit Class Joueur
    Implements Sujet

    Private _lstObservateurs As New List(Of Observateur)
    Private _nomJoueur As String

    Public ReadOnly Property NomJoueur As String
        Get
            Return _nomJoueur
        End Get
    End Property

    Protected ReadOnly Property Observateurs As List(Of Observateur)
        Get
            Return _lstObservateurs
        End Get
    End Property

    Public Sub New(nomJoueur As String)
        _nomJoueur = nomJoueur
    End Sub

    Public Sub AjouterObservateur(o As Observateur) Implements Sujet.AjouterObservateur
        _lstObservateurs.Add(o)
    End Sub

    Public Sub EnleverObservateur(o As Observateur) Implements Sujet.EnleverObservateur
        _lstObservateurs.Remove(o)
    End Sub

    Public MustOverride Sub NotifierObservateur() Implements Sujet.NotifierObservateur
End Class
